/**
 * 节流:触发函数事件后，短时间间隔内无法连续调用，只有上一次函数执行后，过了规定的时间间隔，才能进行下一次的函数调用。
 *
 * @param {Function} func 
 * @param {Number} wait 
 * @param {Boolean} isImmediate 
 * @return Function
 */
function throttle(func, wait, isImmediate = false) {
	let flag = true;
	if (isImmediate) {
		return function() {
			if (flag) {
				func.apply(this, arguments);
				flag = false;
				setTimeout(() => {
					flag = true;
				}, wait);
			};
		};
	};
	return function() {
		if (flag == true) {
			flag = false;
			setTimeout(() => {
				func.apply(this, arguments);
				flag = true;
			}, wait);
		;}
	};
};
// function throttle(fun, delay) {
// 	let oadDate = Date.now();
// 	return function() {
// 		let _this = this;
// 		let args = arguments;
// 		let newDate = Date.now();
// 		if (newDate - oadDate > delay) {
// 			fun.apply(_this, args);
// 			oadDate = Date.now();
// 		} else {
// 			uni.showToast({
// 				title: '请不要频繁点击哦~',
// 				icon: 'none'
// 			})
// 		}
// 	}
// }

export default throttle
